import { Safeify } from 'safeify'
import Mock from 'mockjs'
// 创建 safeify 实例
const safeVm = new Safeify({
  timeout: 3000,
  asyncTimeout: 60000,
})
// 定义 context
const context = {
  a: 1,
  b: 2,
  Mock,
  system: {
    add(a, b) {
      console.log(111)
      return (a + b) * 2
    },
    print(obj) {
      console.log('print', obj)
    },
    mock(obj) {
      const data = Mock.mock({
        // 属性 list 的值是一个数组，其中含有 1 到 10 个元素
        'list|1-10': [
          {
            // 属性 id 是一个自增数，起始值为 1，每次增 1
            'id|+1': 1,
          },
        ],
      })
      console.log('mock', data)
      return data
    },
  },
}

//   // 执行动态代码
const result = await safeVm.run(
  `
  const data = Mock.mock({
    // 属性 list 的值是一个数组，其中含有 1 到 10 个元素
    'list|1-10': [
      {
        // 属性 id 是一个自增数，起始值为 1，每次增 1
        'id|+1': 1,
      },
    ],
  })
return data
`,
  context
)

console.log('result', result)
// 释放资源
safeVm.destroy()
